from random import random


class Settings():
    """设置类"""

    def __init__(self):
        """游戏初始化设置"""
        # 窗口名
        self.caption = "Alien Invasion"
        # 屏幕的宽度
        self.screen_width = 1200
        # 屏幕的高度
        self.screen_height = 650
        # 设置屏幕背景色
        self.bg_color = (245, 245, 245)

        # 飞船生存次数
        self.ship_limit = 3
        # 子弹的高度
        self.bullet_height = 5
        # 子弹的宽度
        self.bullet_width = 3
        # 子弹的颜色
        self.bullet_color = (60, 60, 60)
        # 子弹发射数量限制(屏幕最多有10个子弹)
        self.bullet_limit = 9
        # alien下降速度
        self.fleet_drop_speed = 10

        # 定义以什么样的速度加快游戏节奏
        self.speedup_scale = 1.1
        # 随着游戏等级的提高，得分应该也提升
        self.scoreup_scale = 1.5
        # 加载随游戏进行而动态变化的设置
        self.initialize_dynamic_settings()

    def initialize_dynamic_settings(self):
        # 子弹的移动速度
        self.bullet_speed_factor = 0.2
        # alien移动速度
        self.alien_speed_factor = 0.4
        # 飞船移动速度
        self.ship_speed_factor = 0.6
        # alien移动方向:1表示向右移动,-1表示向左移动
        self.fleet_direction = 0.4
        # 每击落一个alien获取分数
        self.alien_points = 10

    def increase_speed(self):
        """玩家升级后提升游戏速度"""
        self.bullet_speed_factor *= self.speedup_scale
        self.alien_speed_factor *= self.speedup_scale
        self.ship_speed_factor *= self.speedup_scale
        self.alien_points = int(self.alien_points * self.scoreup_scale)
